Software applications, such as business applications, are often composed of multiple applications and related services, all working together. In some situations, application users may adopt a standard set of such applications and related services from a single supplier, in an attempt to ensure that the various components will work well together. However, in many scenarios, the best solutions to meet specific user needs are often made up of heterogeneous technologies in a hybrid landscape, combining best-in-class applications. Moreover, even in cases in which all components are obtained from a single supplier, there is no guarantee that the components will fit perfectly together. Consequently, integration of multiple software applications is often required, and typically represents a time-consuming, manually intensive, error prone, expensive, and generally inefficient process for obtaining the desired result.